// class Person {
//   constructor(name) {
//     this.name = name
//   }
//   say() {
//     console.log(`i am ${this.name}`)
//   }
//   //静态成员函数
//   static create(name) {
//     return new Person(name)
//   }
// }

// class Student extends Person {
//   constructor(name, number) {
//     //super函数始终指向父类，调用它就是调用父类的构造函数
//     super(name)
//     this.number = number
//   }
//   hello() {
//     super.say()
//     console.log(`my school number is ${this.number}`)
//   }
// }
// const s = new Student('jack', '100')
// s.hello()
// //i am jack
// //my school nnumber is 100
// // const person = new Person('Selly')
// // const tom = Person.create('tom')
// // tom.say()

// const m = new Mao()
// const tom = { name: 'tom' }
// m.set(tom, 90)
// console.log(m)
// console.log(m.get(tom))

// // m.has()
// // m.delete()
// // m.clear()

// const s = Symbol()
// console.log(s) //Symbol()
// console.log(typeof s) //symbol

// console.log(Symbol() === Symbol()) //false

// const obj = {
//   store: [],
//   [Symbol.iterator]: function () {
//     let index = 0
//     const self = this
//     return {
//       next: function () {
//         const result = {
//           value: self.store[index],
//           done: index >= self.store.length,
//         }
//         index++
//         return result
//       },
//     }
//   },
// }

// for (let item of obj) {
//   console.log(item)
// }

// const todos = {
//   life: ['吃饭', '睡觉', '打豆豆'],
//   learn: ['语文', '数学', '外语'],
//   work: ['划水'],
//   each: function (callback) {
//     const all = [].concat(this.life, this.learn, this.work)
//     for (const item of all) {
//       callback(item)
//     }
//   },
//   [Symbol.iterator]: function () {
//     const all = [...this.life, ...this.learn, ...this.work]
//     let index = 0
//     return {
//       next: function () {
//         return {
//           value: all[index],
//           done: index++ >= all.length,
//         }
//       },
//     }
//   },
// }

// function* foo() {
//   console.log(111)
//   yield 100
//   console.log(222)
//   yield 200
//   console.log(333)
//   yield 300
// }
// const generator = foo()
// console.log(generator.next())
// console.log(generator.next())
// console.log(generator.next())

if (true) {
  console.log(temp)
  let temp = 1
}
